package com.ms.service.inter;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ms.entity.PlaceApplication;
import com.ms.entity.PlaceRecord;

import java.util.List;

/**
 * 场地申请服务接口
 * 定义场地申请相关业务方法
 */
public interface PlaceApplicationService extends IService<PlaceApplication> {
    
    /**
     * 保存场地申请
     * @param application 场地申请信息
     * @return 是否保存成功
     */
    boolean savePlaceApplication(PlaceApplication application);
    
    /**
     * 根据举办方ID查询场地申请记录
     * @param organizerId 举办方ID
     * @return 场地申请记录列表
     */
    List<PlaceApplication> getPlaceApplicationsByOrganizerId(Integer organizerId);
    
    /**
     * 检查指定场地在指定日期范围内是否已被占用
     * @param placeId 场地ID
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 是否存在冲突
     */
    boolean checkDateConflict(Integer placeId, java.util.Date startDate, java.util.Date endDate);
    
    /**
     * 管理员审批场地申请
     * @param application 包含审批结果的申请信息
     * @return 是否审批成功
     */
    boolean approvePlaceApplication(PlaceApplication application);
    
    /**
     * 根据场地申请信息生成场地记录
     * @param application 通过审批的场地申请
     * @return 是否生成成功
     */
    boolean generatePlaceRecords(PlaceApplication application);
}